#!/usr/bin/env python
# -*- coding:utf8 -*-
# uncompyle6 version 2.15.1
# Python bytecode 2.7 (62211)
# Decompiled from: Python 2.7.10 (default, Jul  1 2017, 13:36:56) 
# [GCC 4.4.6 20110731 (Red Hat 4.4.6-4)]
# Embedded file name: ./esb/components/bk/apis/bk_login/get_batch_user_platform_role.py
# Compiled at: 2017-11-16 15:44:28
"""
Copyright © 2012-2017 Tencent BlueKing. All Rights Reserved. 蓝鲸智云 版权所有
"""
import json
from django import forms
from common.forms import BaseComponentForm, ListField
from common.constants import API_TYPE_Q
from components.component import Component
from .toolkit import configs

class GetBatchUserPlatformRole(Component):
    """
    apiLabel 获取多个用户在平台应用的角色
    apiMethod GET
    
    ### 功能描述
    
    获取多个用户在平台应用的角色
    
    ### 请求参数
    
    {{ common_args_desc }}
    
    #### 接口参数
    
    | 字段      |  类型      | 必选   |  描述      |
    |-----------|------------|--------|------------|
    | username_list |  string    | 是     | 待获取信息的用户名列表  |
    
    ### 请求参数示例
    
    ```python
    {
        "app_code": "esb_test",
        "app_secret": "xxx",
        "bk_token": "xxx",
        "username_list": "admin;test"
    }
    ```
    
    ### 返回结果示例
    
    ```python
    {
        "result": true,
        "code": "00",
        "message": "用户信息获取成功",
        "data": {
            "admin": {
                "bkdata": [1],
                "job": [1],
                "cmdb": [1, 2],
            }
        }
    }
    ```
    
    ### 返回结果参数说明
    
    | 字段      | 类型      | 描述      |
    |-----------|-----------|-----------|
    | data      | object    | 返回数据，成功返回请求数据 |
    
    #### data
    
    | 字段      | 类型      | 描述      |
    |-----------|-----------|-----------|
    | [user].[app].role  | list  | 用户角色，1：管理员，2：操作员 |
    """
    sys_name = configs.SYSTEM_NAME
    api_type = API_TYPE_Q

    class Form(BaseComponentForm):
        bk_token = forms.CharField(label=u'登录态', required=False)
        username_list = ListField(label=u'待获取信息用户列表', required=True)

    def handle(self):
        self.response.payload = self.outgoing.http_client.post(configs.host, '/login/accounts/get_batch_user_platform_role/', data=json.dumps(self.form_data), headers=configs.headers)
